package com.cls.business.service;

import com.cls.business.entity.SysSms;

import com.cls.common.entity.QueryRequest;
import com.cls.common.enums.DictEnum;
import com.github.pagehelper.PageInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 短信功能表 Service接口
 *
 * @author slx
 * @date 2020-12-17 11:07:59
 */
public interface ISysSmsService extends IService<SysSms> {
    /**
     * 查询（分页）
     *
     * @param request QueryRequest
     * @param sysSms  sysSms
     * @return PageInfo<SysSms>
     */
    PageInfo<SysSms> findSysSmss(QueryRequest request, SysSms sysSms);

    /**
     * 查询（所有）
     *
     * @param sysSms sysSms
     * @return List<SysSms>
     */
    List<SysSms> findSysSmss(SysSms sysSms);

    /**
     * 新增
     *
     * @param sysSms sysSms
     */
    void createSysSms(SysSms sysSms);

    /**
     * 修改
     *
     * @param sysSms sysSms
     */
    void updateSysSms(SysSms sysSms);

    /**
     * 删除
     *
     * @param ids ids
     */
    void deleteSysSmss(String[] ids);


    /**
     * 发送短信验证码并保存至数据库
     * {"code"->"123"}
     * <p>
     * 1. 确定评审专家后系统向专家发送短信提醒
     * 内容值：
     * {
     * "topicName":"课题名称",
     * "userName":"用户名",
     * "password":"密码",
     * }
     * 登录提醒：中国法学会邀请您成为${topicName}评审专家，请您登录系统进行课题评审工作。地址：http://xxxxx.com，用户名：${userName}，密码：${password}。为保障用户安全，请勿泄露给他人。
     *
     * @param dictEnum 那个业务发送的短信
     * @param mobile   用户手机号
     * @param content  发送的变量值 {"code"->"123"}
     * @author Carey
     * @description
     * @date 2020/12/17 2:42 下午
     */
    void sendSMS(DictEnum dictEnum, String mobile, Map<String, String> content);

}
